ওয়েব অ্যাপ্লিকেশনে ডেটা সংরক্ষণ ও পরিচালনার জন্য ব্রাউজারভিত্তিক স্টোরেজ সমাধানগুলো গুরুত্বপূর্ণ। IndexedDB এবং WebSQL হচ্ছে দু’টি মূলত ক্লায়েন্ট-সাইড ডেটা ম্যানেজমেন্ট টেকনোলজি, যা Framework7 সহ যেকোনো ফ্রন্ট-এন্ড অ্যাপ্লিকেশন থেকে ব্যবহার করা সম্ভব।
IndexedDB কী?
IndexedDB একটি ব্রাউজারভিত্তিক ডেটাবেজ (NoSQL) যা বড় আকারের ডেটা উচ্চ-পারফরম্যান্সে সংরক্ষণ করতে সক্ষম। এটি কীগুলির উপর ভিত্তি করে ডেটা ইনডেক্স করে এবং ট্রানজ্যাকশন ভিত্তিক কাজ করে। IndexedDB ব্যবহার করে আপনাকে অ্যাপ্লিকেশন অফলাইনে কাজ করার সুযোগ দেয়।
IndexedDB এর বৈশিষ্ট্য
- Key-value স্টোরেজ সিস্টেম।
- অ্যাসিনক্রোনাস অপারেশন, ফলে UI ব্লক হয় না।
- বড় পরিমাণ ডেটা সংরক্ষণ করা যায়।
- IndexedDB Promise বা Callback ব্যবহার করে ট্রানজ্যাকশন পরিচালনা করা যায়।
IndexedDB ব্যবহারের উদাহরণ (JavaScript)
// IndexedDB খোলা বা তৈরি করা
var request = indexedDB.open('MyDatabase', 1);
request.onupgradeneeded = function(event) {
var db = event.target.result;
var objectStore = db.createObjectStore('users', { keyPath: 'id' });
objectStore.createIndex('name', 'name', { unique: false });
};
request.onsuccess = function(event) {
var db = event.target.result;
// ডেটা লেখা
var transaction = db.transaction(['users'], 'readwrite');
var store = transaction.objectStore('users');
store.add({ id: 1, name: 'John Doe', age: 30 });
// ডেটা পড়া
store.get(1).onsuccess = function(event) {
console.log('User Data:', event.target.result);
};
};
WebSQL কী?
WebSQL একটি পুরোনো ব্রাউজারভিত্তিক ডেটাবেজ API যা SQL ব্যবহার করে ডেটা সংরক্ষণ করে। যদিও W3C WebSQL কে Deprecated ঘোষণা করেছে এবং নতুন ব্রাউজারগুলোতে IndexedDB এর দিকে বেশি ঝুঁকেছে, কিছু পুরোনো ব্রাউজারে এটি এখনো কাজ করে। WebSQL লাইটওয়েট SQL ডাটাবেস হিসেবে কাজ করে।
WebSQL এর বৈশিষ্ট্য
- SQL ভিত্তিক ডেটা সংরক্ষণ।
- সিঙ্ক্রোনাস লাইটওয়েট ডাটাবেজ অপারেশন।
- পুরোনো ব্রাউজার সাপোর্ট বিদ্যমান, তবে নতুন স্ট্যান্ডার্ড নয়।
WebSQL ব্যবহারের উদাহরণ (JavaScript)
// WebSQL ডেটাবেজ ওপেন করা
var db = openDatabase('MyDB', '1.0', 'Test DB', 2 * 1024 * 1024);
// টেবিল তৈরি
db.transaction(function(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS USERS (id unique, name)');
});
// ডেটা ইনসার্ট করা
db.transaction(function(tx) {
tx.executeSql('INSERT INTO USERS (id, name) VALUES (1, "Jane Doe")');
});
// ডেটা রিড করা
db.transaction(function(tx) {
tx.executeSql('SELECT * FROM USERS', [], function(tx, results) {
var len = results.rows.length;
for (var i = 0; i < len; i++) {
console.log("User: " + results.rows.item(i).name);
}
});
});
IndexedDB বনাম WebSQL
| বৈশিষ্ট্য | IndexedDB | WebSQL |
|---|---|---|
| স্টোরেজ টাইপ | Key-value (NoSQL) | SQL ভিত্তিক |
| স্ট্যান্ডার্ড | W3C দ্বারা সমর্থিত | W3C Deprecated (অপ্রচলিত) |
| পারফরম্যান্স | উন্নত পারফরম্যান্স ও বড় ডেটা সাপোর্ট | তুলনামূলক কম আধুনিক |
| ব্রাউজার সাপোর্ট | আধুনিক ব্রাউজারে পূর্ণ সমর্থন | পুরোনো কিছু ব্রাউজারে সমর্থন |
| জটিলতা | জটিল কিন্তু অধিক ক্ষমতা | তুলনামূলক সহজ কিন্তু Deprecated |
Framework7 এর সাথে ব্যবহার
Framework7 মূলত একটি ফ্রন্ট-এন্ড ফ্রেমওয়ার্ক যা IndexedDB বা WebSQL এর ওপর সরাসরি নির্ভর করে না, তবে সহজেই Framework7 অ্যাপের মধ্যে IndexedDB বা WebSQL ইমপ্লিমেন্ট করা যায়। অ্যাপ্লিকেশন ডাটা অফলাইনে সংরক্ষণ করতে, API থেকে ফেচ করা ডেটা ক্যাশ করতে বা ইউজার ডেটা লোকাল ডাটাবেজে রাখতে IndexedDB আদর্শ।
উদাহরণ: Framework7 অ্যাপে IndexedDB ব্যবহার
// app.js
var app = new Framework7({
root: '#app',
routes: [
// Your routes
],
});
// IndexedDB সেটআপ
var request = indexedDB.open('MyF7AppDB', 1);
request.onupgradeneeded = function(event) {
var db = event.target.result;
db.createObjectStore('todos', { keyPath: 'id' });
};
request.onsuccess = function(event) {
var db = event.target.result;
// এখন থেকে অ্যাপের যেকোনো স্থানে ডেটা সংরক্ষণ ও রিট্রিভ করা যাবে
};
কোনটি ব্যবহার করবেন?
- IndexedDB: যদি আপনার অ্যাপ্লিকেশন বড় আকারের ডেটা, অফলাইন সাপোর্ট, এবং আধুনিক ব্রাউজার টার্গেট করে তবে IndexedDB ব্যবহার করুন।
- WebSQL: Deprecated, তবে যদি আপনাকে পুরোনো ব্রাউজার সাপোর্ট করতে হয় এবং SQL সিনট্যাক্স জানা থাকে, তখন বিবেচনা করতে পারেন। তবে ভবিষ্যতে IndexedDB তে মাইগ্রেট করা উত্তম।
IndexedDB এবং WebSQL উভয়ই ক্লায়েন্ট-সাইড ডেটা ম্যানেজমেন্ট সমাধান সরবরাহ করে, তবে IndexedDB বেশি আধুনিক এবং স্ট্যান্ডার্ড। Framework7 এর সাথে IndexedDB ব্যবহার করে অ্যাপ্লিকেশন অফলাইনে পরিচালনা করা, ডেটা ক্যাশিং এবং ডেটা স্টোরেজ কমপ্লেক্সিটিকে সহজ করা যায়।
Read more